package com.briup.util;

import com.briup.Configuration;
import com.briup.entity.Environment;
import com.briup.support.ConfigurationAware;
import com.briup.support.PropertiesAware;

import java.io.*;
import java.util.List;
import java.util.Properties;

public class BackupImpl implements  Backup , PropertiesAware, ConfigurationAware {
    @Override
    /**
     * 数据恢复的方法
     * 文件  ---》  数据（对象）
     */
    public Object load(String filePath, boolean del) throws Exception {
        System.out.println("load---"+filePath);
        File file = new File(filePath);
        //先判断备份数据 是否存在
        if (!file.exists()||file.isDirectory()){
            //备份数据不存在
            return  null;
        }

        FileInputStream fis = new FileInputStream(file);
        ObjectInputStream ois = new ObjectInputStream(fis);
        List<Environment> o = (List<Environment>) ois.readObject();
        ois.close();
        fis.close();
        if (del)
            file.delete();

        return o;
    }

    @Override
    /**
     * 数据备份的方法
     * 数据 （对象）  ---》文件
     */
    public void store(String filePath, Object obj, boolean append) throws Exception {
        File file = new File(filePath);
        FileOutputStream fos = new FileOutputStream(file, append);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(obj);
        oos.flush();
        oos.close();
        fos.close();
    }

    @Override
    public void init(Properties properties) throws Exception {

    }

    @Override
    public void setConfiguration(Configuration configuration) throws Exception {

    }
}
